#ifndef SINGLELINKLIST_H
#define SINGLELINKLIST_H

#include "header.h"

typedef int ElemType;
typedef struct SingleLinkListNode{
    ElemType data;
    /*此处struct关键字不能丢*/
    struct SingleLinkListNode * next;
}*SingleLinkList,SingleLinkListNode;

SingleLinkList SingleLinkListCreateHead(void);
SingleLinkList SingleLinkListCreateTail(void);
SingleLinkListNode * SingleLinkListGetnodeNum(SingleLinkList list, int num);

/**
 * @brief GetnodeData 依据输入的节点数据内容，返回数据所在节点
 * @param list 链表
 * @param data 数据
 * @return 包含data的节点
 */
SingleLinkListNode * SingleLinkListGetnodeData(SingleLinkList list, ElemType data);
SingleLinkListNode * SingleLinkListGetTailNode(SingleLinkList list);

void SingleLinkListTraverse(SingleLinkList list);
SingleLinkList SingleLinkListGenerate();
void SingleLinkListInsert(SingleLinkList list,int pos,ElemType data);
void SingleLinkListAppend(SingleLinkList list,ElemType data);
void SingleLinkListDeleteNode(SingleLinkList list,int pos);
int SingleLinkListGetListLength(SingleLinkList list);


#endif
